﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FinalFantasy6Randomizer
{
    class MagicTiers
    {
        public List<List<Spell>> Tiers { get; set; }
        private static readonly MagicTiers instance = new MagicTiers();

        private MagicTiers()
        {
            SetMagicTiers();
        }

        public static MagicTiers GetMagicTiers()
        {
            return instance;
        }

        private void SetMagicTiers()
        {
            Tiers = new List<List<Spell>>
                        {
                            new List<Spell>
                                {
                                    Spell.Fire,
                                    Spell.Ice,
                                    Spell.Bolt,
                                    Spell.Poison,
                                    Spell.Drain,
                                    Spell.Scan,
                                    Spell.Slow,
                                    Spell.Osmose,
                                    Spell.Cure,
                                    Spell.Antdot,
                                    Spell.Remedy,
                                    Spell.Regen,
                                },
                            new List<Spell>
                                {
                                    Spell.Fire2,
                                    Spell.Ice2,
                                    Spell.Bolt2,
                                    Spell.Bio,
                                    Spell.Break,
                                    Spell.Doom,
                                    Spell.Demi,
                                    Spell.Rasp,
                                    Spell.Mute,
                                    Spell.Safe,
                                    Spell.Sleep,
                                    Spell.Muddle,
                                    Spell.Haste,
                                    Spell.Stop,
                                    Spell.Bserk,
                                    Spell.Float,
                                    Spell.Imp,
                                    Spell.Rflect,
                                    Spell.Shell,
                                    Spell.Vanish,
                                    Spell.Warp,
                                    Spell.Dispel,
                                    Spell.Cure2,
                                    Spell.Life,
                                },
                            new List<Spell>
                                {
                                    Spell.Fire3,
                                    Spell.Ice3,
                                    Spell.Bolt3,
                                    Spell.Pearl,
                                    Spell.Flare,
                                    Spell.Quartr,
                                    Spell.XZone,
                                    Spell.Quake,
                                    Spell.Haste2,
                                    Spell.Slow2,
                                    Spell.Cure3,
                                    Spell.Life2,
                                    Spell.Life3,
                                },
                            new List<Spell>
                                {
                                    Spell.Meteor,
                                    Spell.Ultima,
                                    Spell.WWind,
                                    Spell.Merton,
                                    Spell.Quick,
                                },
                        };
        }
    }
}
